Home

Column

Welcome!

This website provides interactive results for the forecasting models explored in the paper Estimating Neighborhood Asking Rents using Scraped Craigslist Rental Listings.

The goal of this research is to a.) understand the temporal dynamics of rent estimates in Seattle and b.) forecast the current quarter’s rent levels based off of the prior periods. The focal series of models regress median one-bedroom rent asked values on different specifications of the panel’s correlation structure (i.e. temporal and spatial). All of the candidate models are estimated with integrated nested Laplace approximations (INLA) using the default, weakly-informative priors for all model hyperparameters. Throughout the following analyses, the training data are 2017 Q2 up to the prior quarter (i.e. 2018 Q1). The test period is a forecast for the current period and includes comparison to the appropriate median rent estimates for data observed so far in this period.

Most graphics include some level of interactivity, usually either hover-over tooltip information or a slider to control various views of the graphic. Clicking on cases will highlight data elements in most graphics, and double-clicking will reset the graphic. You can download the source code and data for this project from Github here.

Contact Chris Hess at hesscl@uw.edu for more information about this research.

This page was last updated: 2018-05-22




Table of Contents

Page Description
Distribution density graphic to investigate the distribution of rents among Seattle neighborhoods for each quarter
Panel Time-Series line graphic to show the observed or modeled temporal structure
Spatial Time-Series series of maps to show observed change across time
Model Fit tables of model root mean square error (RMSE), mean absolute error (MAE), and deviance information criterion (DIC) across training and test data

Column

Observed vs. Smoothed Rent Estimates

Distribution

Panel Time-Series

Spatial Time-Series

Column

Observed

Non-Spatial AR(1)

Spatial RE

Spatiotemporal AR(1) RE

Model Fit

Column

Model Legend

Model abbr. Description
int Quarter fixed intercept
log(med1B) ~ 1 + Qtr
ns Non-spatial tract random effect for each tract, quarter fixed intercept
log(med1B) ~ 1 + Qtr + f(idtract, model = “iid”)
nsar1 Non-spatial tract random effect model, AR(1) random effect for quarter, i.i.d. random effect for quarter
log(med1B) ~ 1 + f(idtract, model = “iid”) + f(idqtr, model = “ar1”) + , f(idqtr1, model = “iid”)
bym Spatial intrinsic conditional autoregressive (ICAR) tract random-effect with quarter fixed intercept
log(med1B) ~ 1 + Qtr + f(idtract, model = “bym”, scale.model = T, , graph = “./output/seatract.graph”)
spt Spatial intrinsic conditional autoregressive (ICAR) tract random-effect, AR(1) random effect for quarter, i.i.d. random effect for quarter and tract-quarter
log(med1B) ~ 1 + f(idtract, model = “bym”, scale.model = T, graph = “./output/seatract.graph”) + , f(idqtr, model = “ar1”) + f(idqtr1, model = “iid”) + f(idtractqtr, , model = “iid”)

Accuracy and Information Criteria

train_test int_rmse ns_rmse nsar1_rmse bym_rmse spt_rmse
Test 307.0736 214.1802 206.5359 206.2086 198.42837
Training 324.3490 136.1696 136.9117 138.2681 78.53613



train_test int_mae ns_mae nsar1_mae bym_mae spt_mae
Test 248.1144 160.51161 149.92773 155.44370 144.68236
Training 258.1041 89.43892 90.29539 92.75499 52.71532



train_test int_DIC ns_DIC nsar1_DIC bym_DIC spt_DIC
Training -168.1242 -679.9016 -679.7958 -685.7149 -815.9814



train_test int_WAIC ns_WAIC nsar1_WAIC bym_WAIC spt_WAIC
Training -167.4504 -661.0795 -660.4344 -667.0376 -806.3794

Column

Non-Spatial AR(1)

Spatial RE

Spatiotemporal AR(1)